package br.com.speedprevweb.bean;

import br.com.speedprevweb.dao.TipoAverbacaoDao;
import br.com.speedprevweb.dao.impl.TipoAverbacaoDaoImpl;
import br.com.speedprevweb.model.TipoAverbacao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "tipoAverbacaoBean")
@SessionScoped
public class TipoAverbacaoBean implements Serializable {

  private TipoAverbacao tipoAverbacao = new TipoAverbacao();
  private List<TipoAverbacao> listaTipoAverbacao = new ArrayList();

  public TipoAverbacaoBean() {
    listaTipoAverbacao = new TipoAverbacaoDaoImpl().listarTodos();
    tipoAverbacao = new TipoAverbacao();
  }

  public String incluirTipoAverbacao() {
    tipoAverbacao = new TipoAverbacao();
    return "TipoAverbacaoDetalhe";
  }

  public String preparaAlterarTipoAverbacao() {
    return "TipoAverbacaoDetalhe";
  }

  public String excluirTipoAverbacao() {
    TipoAverbacaoDao tpTipoAverbacaoDao = new TipoAverbacaoDaoImpl();
    tpTipoAverbacaoDao.excluir(tipoAverbacao);
    listaTipoAverbacao = new TipoAverbacaoDaoImpl().listarTodos();
    tipoAverbacao = new TipoAverbacao();
    return "TipoAverbacao";
  }

  public String salvar() {
    if (tipoAverbacao.getIdTipoAverbacao() == 0) {
      incluir();
    } else {
      alterar();
    }
    return "TipoAverbacao";
  }

  public void incluir() {
    TipoAverbacaoDao tpTipoAverbacaoDao = new TipoAverbacaoDaoImpl();
    tpTipoAverbacaoDao.salvar(this.tipoAverbacao);
    listaTipoAverbacao = new TipoAverbacaoDaoImpl().listarTodos();
    tipoAverbacao = new TipoAverbacao();
  }

  public void alterar() {
    TipoAverbacaoDao tpTipoAverbacaoDao = new TipoAverbacaoDaoImpl();
    tpTipoAverbacaoDao.alterar(tipoAverbacao);
  }

  public String cancelar() {
    return "TipoAverbacao";
  }

  private void atualizarDataTable() {
    listaTipoAverbacao = new TipoAverbacaoDaoImpl().listarTodos();
    tipoAverbacao = new TipoAverbacao();
  }

  public int totalRegistros() {
    return listaTipoAverbacao.size();
  }

  public TipoAverbacao getTipoAverbacao() {
    return tipoAverbacao;
  }

  public void setTipoAverbacao(TipoAverbacao tipoAverbacao) {
    this.tipoAverbacao = tipoAverbacao;
  }

  public List<TipoAverbacao> getListaTipoAverbacao() {
    return listaTipoAverbacao;
  }

  public void setListaTipoAverbacao(List<TipoAverbacao> listaTipoAverbacao) {
    this.listaTipoAverbacao = listaTipoAverbacao;
  }

}
